﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright company="Microsoft Corp." file="ISqlAzureManagementClient.cs">
//   All rights reserved. See License.txt in the project root for license information.
// </copyright>
// 
// --------------------------------------------------------------------------------------------------------------------
namespace AzureManagement
{
    using System.Collections.Generic;
    using System.Threading.Tasks;

    using AzureManagement.SqlAzureDataContracts;

    using RestClient;

    public interface ISqlAzureManagementClient
    {
        Task<string> CreateSqlAzureServer(string adminLogin, string adminPassword, string location, RequestOptions options = null);

        Task<IList<SqlAzureServer>> ListSqlAzureServers(RequestOptions options = null);

        Task<string> DeleteSqlAzureServer(string serverName, RequestOptions options = null);

        Task<string> CreateFirewallRule(
                                string serverName, 
                                string ruleName, 
                                string startIpAddresss, 
                                string endIpAddress, 
                                RequestOptions options = null);

        Task<string> CreateFirewallRuleWithIpDetect(string serverName, string ruleName, RequestOptions options = null);
    }
}